<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script>

const aaa =  [
          { 'id': '29', 'pid': '',     'name': '总裁办' },
          { 'id': '2c', 'pid': '',     'name': '财务部' },
          { 'id': '2d', 'pid': '2c', 'name': '财务核算部'},
          { 'id': '2f', 'pid': '2c', 'name': '薪资管理部'},
          { 'id': 'd2', 'pid': '',     'name': '技术部'},
          { 'id': 'd3', 'pid': 'd2', 'name': 'Java研发部'},
          { 'id': '2g', 'pid': 'd2', 'name': 'Python研发部'},
        ]
 const mapobj={}
 aaa.forEach(item=>{
   //1 判断aaa中是否有childrent 无加
   if(!item.children){
    item.children=[]
   }
   //2 把id  作为键值 值 就是item本身
   mapobj[item.id]=item
  //  aaa[0].id=11
 })
 const new_arr=[]
  arr.forEach(item=>{ 
    //coonst p= mapobj[item.pid]   p 没有undefiend 则是一级 p 有则二级

    if(p){
    p.children.push(item)
    }else{
    new_arr.push(item)
    }
  })

 console.log(aaa);
console.log(mapobj);
  </script>
</head>
<body>
  
</body>
</html>